package org.example.demo1.DAO;

import org.apache.ibatis.annotations.Param;
import java.util.List;

public interface RolePermissionDao {
    // 获取角色的所有权限ID
    List<Integer> getPermissionIdsByRoleId(int role_id);
    
    // 获取拥有特定权限的所有角色ID
    List<Integer> getRoleIdsByPermissionId(int permission_id);
    
    // 为角色添加权限
    int assignPermissionToRole(@Param("role_id") int role_id, @Param("permission_id") int permission_id);
    
    // 移除角色的权限
    int removePermissionFromRole(@Param("role_id") int role_id, @Param("permission_id") int permission_id);
    
    // 移除角色的所有权限
    int removeAllPermissionsFromRole(int role_id);
    
    // 移除与特定权限相关的所有角色关联
    int removeAllRolesFromPermission(int permission_id);
    
    // 检查角色是否拥有特定权限
    boolean hasPermission(@Param("role_id") int role_id, @Param("permission_id") int permission_id);
    
    // 批量为角色分配权限
    int batchAssignPermissionsToRole(@Param("role_id") int role_id, @Param("permission_ids") List<Integer> permission_ids);
}